QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    NestConfigDialog.cpp \
    NestPathInfoDialog.cpp \
    NestPathItem.cpp \
    algorithm/GeneticAlgorithm.cpp \
    algorithm/Nest.cpp \
    algorithm/Placement.cpp \
    algorithm/SimulatedAnnealing.cpp \
    config/NestConfig.cpp \
    entity/Individual.cpp \
    entity/NestPath.cpp \
    entity/NfpConfig.cpp \
    entity/NfpKey.cpp \
    entity/NfpPair.cpp \
    entity/Point.cpp \
    entity/Polygon.cpp \
    entity/PolygonList.cpp \
    entity/Segment.cpp \
    main.cpp \
    mainwindow.cpp \
    utils/ClipperUtil.cpp \
    utils/GeometryUtils.cpp \
    utils/NfpUtils.cpp \
    $$PWD/lib/tinyxml2\tinyxml2.cpp \
    $$PWD/lib/Clipper2Lib/src/clipper.engine.cpp \
    $$PWD/lib/Clipper2Lib/src/clipper.offset.cpp \
    $$PWD/lib/Clipper2Lib/src/clipper.rectclip.cpp

HEADERS += \
    NestConfigDialog.h \
    NestPathInfoDialog.h \
    NestPathItem.h \
    algorithm/GeneticAlgorithm.h \
    algorithm/Nest.h \
    algorithm/Placement.h \
    algorithm/SimulatedAnnealing.h \
    config/NestConfig.h \
    entity/Individual.h \
    entity/NestPath.h \
    entity/NfpConfig.h \
    entity/NfpKey.h \
    entity/NfpPair.h \
    entity/Point.h \
    entity/Polygon.h \
    entity/PolygonList.h \
    entity/Segment.h \
    mainwindow.h \
    utils/ClipperUtil.h \
    utils/GeometryUtils.h \
    utils/NfpUtils.h \
    utils/SVGUtil.hpp

INCLUDEPATH +=    \
    $$PWD/lib/tinyxml2 \
    $$PWD/lib/Clipper2Lib/include/clipper2
#    lib/Clipper2Lib/include/clipper2/clipper.core.h \
#    lib/Clipper2Lib/include/clipper2/clipper.engine.h \
#    lib/Clipper2Lib/include/clipper2/clipper.export.h \
#    lib/Clipper2Lib/include/clipper2/clipper.h \
#    lib/Clipper2Lib/include/clipper2/clipper.minkowski.h \
#    lib/Clipper2Lib/include/clipper2/clipper.offset.h \
#    lib/Clipper2Lib/include/clipper2/clipper.rectclip.h \

#    lib/tinyxml2/tinyxml2.h \
#    lib/tinyxml2/tinyxml2.cpp

FORMS += \
    NestConfigDialog.ui \
    NestPathInfoDialog.ui \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

RESOURCES += \
    res.qrc
